package C.e.io.gaoji;

import java.io.*;

/**
 * 缓冲流：是一对高级流，作用是加快读写效率
 * 1）BufferedInputStream:缓冲输入流
 * 2）BufferedOutputStream：缓冲输出流
 * 缓冲流读写效率快的原因：
 * 1）缓冲流的内部有一个8kb的字节数组，你看这是一个字节一个字节的读写，
 * 但缓冲流底层已经把它转换为块读写了
 * 缓冲流和使用才有意义：
 * 1）不同的高级流有不同的功能，但只有缓冲流才具有加速功能（块读写），
 * 其他的高级流不具备加速功能，都是单字节读写，
 * 此时若又想先完成功能再加速处理，则需要流连接，将供能流连接到缓冲流
 */
public class CopyDemo3Buffered {
    public static void main(String[] args) throws IOException {
       /* FileInputStream fis=new FileInputStream("D://ddb//1.jpg");
        BufferedInputStream bis=new BufferedInputStream(fis);
        FileOutputStream fos=new FileOutputStream("D://ddb/14.jpg");
        BufferedOutputStream bos=new BufferedOutputStream(fos);
        long start=System.currentTimeMillis();
        int d;
        while ((d= bis.read())!=-1){
            bos.write(d);
        }
        long end= System.currentTimeMillis();
        System.out.println("复制完毕！耗时："+(end-start)+"ms");
        bos.close();
        bis.close();*/



       // Ff=nF Bb=nB Ff=nF Bb=nB ls=S      i d   w(d=b.r)   b.w(d)  le=S   S(e-s+ms)    b.c b.c
        FileInputStream fis = new FileInputStream("D://ddb/2.jpeg");
        BufferedInputStream bis = new BufferedInputStream(fis);
        FileOutputStream fos = new FileOutputStream("D://ddb/w.jpeg");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        long start = System.currentTimeMillis();
        int d;
        while((d=bis.read())!=-1){
            bos.write(d);
        }
        long end = System.currentTimeMillis();
        System.out.println("复制完毕!耗时:"+(end-start)+"ms");
        bis.close();
        bos.close();

        }
    }

